#pragma once

namespace PBVP {
	/// 3D Vertex Data
	/**
	 *
	 */
	class Vertex3D {
	public:
		/// Default Constructor
		Vertex3D();
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="pos"></param>
		Vertex3D(float pos[3]);
		/// <summary>
		/// 
		/// </summary>
		/// <param name="pos"></param>
		/// <param name="normal"></param>
		Vertex3D(float pos[3], float normal[3]);
		/// 
		virtual ~Vertex3D() {}
		/// <summary>
		/// 
		/// </summary>
		/// <returns>bool</returns>
		bool hasNormal() {
			return m_HasNormal;
		}
		/// <summary>
		/// 
		/// </summary>
		/// <returns>float*</returns>
		float* getPositionData() {
			return m_Position;
		}
		/// <summary>
		/// 
		/// </summary>
		/// <returns>float*</returns>
		float* getNormalData() {
			return m_Normal;
		}
	private:
		///
		bool m_HasNormal;
		/// 
		float m_Position[3];
		///
		float m_Normal[3];
	};
}